package com.superm.mappers;

import com.superm.entity.Goods;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 商品信息接口
 */
public interface GoodsMapper {
    /**
     * 根据id 查询一条商品信息
     * @param goods
     * @return
     */
    Goods allGoods(@Param("goods") Goods goods);



    /**
     * 查询全部信息
     * @return
     */
    List<Goods> selectAll(@Param("goods")Goods goods, @Param("pageNo")Integer pageNo, @Param("pageSize")Integer pageSize);


    /**
     * 查询指定货架下的商品信息
     * @param storgageRackId
     * @return
     */
    List<Goods> selectMationInfo(@Param("storgageRackId") Integer storgageRackId);

    /**
     * 查询条数
     * @return
     */
    Integer selectCount(@Param("goods")Goods goods);


    /**
     * 根据id查询指定信息
     * @param goodsId
     * @return
     */
    Goods selectIdMationInfo(@Param("goodsId") Integer goodsId);
    /**
     * 添加信息
     * @param goods
     * @return
     */
    int addInfoMation(@Param("goods")Goods goods);

    /**
     * 修改信息
     * @param goods
     * @return
     */
    int updateMation(@Param("goods")Goods goods);


    /**
     * 增加商品库存用的方法 条件是下架的商品
     * @return
     */
    List<Goods> allGoodSs();

    /**
     * 查询所有商品
     * @return
     */
    List<Goods> selectGoodSs();

    /**
     * 商品上架
     * @return
     */
    int goodsShelves(@Param("goods") Goods goods);


    /**
     * 商品下架
     * @param goodsId
     * @return
     */
    int goodsOffTheShelf(@Param("goodsId") Integer goodsId);


    /**
     * 修改某商品的数量
     * @param goodid
     * @param goodsCount
     * @return
     */
    Integer upGoodsCount(@Param("goodsid") Integer goodid,@Param("goodsCount") Integer goodsCount);
    /**
     * 增加商品数量  进行回滚
     * @param goodid
     * @param goodsCount
     * @return
     */
    Integer upGoodsCountJ(@Param("goodsid") Integer goodid,@Param("goodsCount") Integer goodsCount);
}
